/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dpy.appmvdpy.Models.Importers;

import com.dpy.appmvdpy.Facades.ProdutosFacade;
import com.dpy.appmvdpy.Models.Clientes;
import com.dpy.appmvdpy.Models.Produtos;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/**
 *
 * @author ac_psoares
 */
@Component
@Scope(value="request")
public class ProdutoImporter extends Importer<Produtos> {

    @Autowired
    private ProdutosFacade pFacade;
    
    public ProdutoImporter()
    {

    }
    
    public ProdutoImporter(File file)
    {
       super(file);
    }
    
    @Override
    public List<Produtos> doImport() 
    {
        List<Produtos> retorno = new ArrayList<Produtos>();
        try {
            
           int i = 0;
           String record = null;
    
           while((record = bReader.readLine()) != null)
           {
            System.out.println("registro :" + record);
            String[] parametros = record.split("##");            
        
            if (parametros.length > 1)
            {
         
            Produtos p = pFacade.getByCodigoDpy(parametros[0].trim());
            
            p = p == null ? new Produtos() : p;
            
            p.setCodigoDPY(parametros[0].trim());
            p.setReferencia(parametros[1].trim());
            p.setDescricao(parametros[2].trim());
            String valor = parametros[7].trim();
            String centavos = valor.substring(3,5);
            String reais = valor.substring(0,3);
            Double preco = new Double(reais + "." + centavos);
            p.setPreco(preco);         
            p.setIntegrado(true);
            retorno.add(p);
            
            }
  
           }
        } catch (IOException ex) {
            Logger.getLogger(ClientImporter.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;              
    }
    
}
